/* Author: yangzeming
 * Date: 2014-1-10
 * Desc: 表格组件 模块化遵循CMD规范 _.Class()定义类的规范化方式
 *       组件化遵循基本的接口约定：
 *       传入的参数：option = {
                                  con : $ | dom,  //传入的dom容器
                                  template : "[String]", // 渲染的模板
                                  theme : "",    // 皮肤
                                  data : [],
                                    
                              }

         initial : 初始化方法
         render ： 渲染

 */
define(function (require, exports, module) {
    var Table = _.Class({
        initial: function (option) {
            this._eventStack = {};
            var defaultOp = {
                data: {
                    list: []
                },
                pager: {
                    template: '<div data-role="pageInfo" style="float:left;"><span class="text">总共<span data-role="rowCount"></span>条记录</span><span class="text">共<span data-role="pageCount"></span>页</div><ul class="dataTables_paginate  eui-ul-left"><li data-type="first" class="ui-corner-tl ui-corner-bl ui-state-default eui-button"><a data-role="first">首页</a></li><li class="ui-state-default eui-button" data-type="prev"><a data-role="prev">上一页</a></li><li  class="eui-pager-num" data-value="pageNum"></li><li class="ui-state-default eui-button" data-type="next"><a data-role="next">下一页</a></li><li data-type="last" class="ui-corner-tr ui-corner-br ui-state-default  eui-button"><a data-role="last">尾页</a></li></ul>'
                }

                /* 
                dataUrl : 
                maxNum:
                pager : {
                data : ,
                con : ,
                maxNum :,
                template:''
                }
                */
            };
            this.option = $.extend(true, {}, defaultOp, option);
            this.$con = $(this.option.con);
            this.bt = baidu.template;
            var html = this.bt(this.option.template, this.option.data);
            this.$con.html(html);
            if (this.option.pager) {
                this.createPager();
            }

        },
        render: function (data) {
            var html = this.bt(this.option.template, data);
            this.$con.html(html);

        },
        createPager: function () {
            var uiPager = require("./pager"),
                pagerOp = this.option.pager;
            var Pager = new uiPager(pagerOp);
            this.Pager = Pager;
        },
        getPager: function () {
            return this.Pager;
        }

    });
    module.exports = Table;

});


